package com.runda.partypolicy.app.repository;

import com.google.gson.Gson;
import com.runda.partypolicy.app.repository.api.APIServiceCreator;

import javax.inject.Inject;

/**
 * author:  RD_ZYH
 * date:    2018/10/10
 * version: v1.0
 * description:
 */
public class Repository_Inspect {

    private Gson gson;
    private APIServiceCreator api;

    @Inject
    public Repository_Inspect(Gson gson, APIServiceCreator api){
        this.gson = gson;
        this.api  = api;

    }
//    public Flowable<RepositoryResult<Boolean>> subCode(
//            @NonNull  String nfcCode,
//            @NonNull String qrCode
//    ){
//        return this.api.getRequester().subCode(nfcCode,qrCode)
//                .map(originalResult -> {
//                    boolean isSuccess = "200".equals(originalResult.getStatusCode());
//                    RepositoryResult<Boolean> result = new RepositoryResult<>(
//                            isSuccess ,originalResult.getStatusCode(), originalResult.getMessage());
//                    result.setData(isSuccess);
//
//                    return result;
//                });
//    }
//    public Flowable<RepositoryResult<PageContainer<Plans>>> getPlans(
//            @NonNull String pageNumber,
//            @NonNull  String pageSize,
//            @Nullable String planName,
//            @Nullable String status,
//            @Nullable String personId,
//            @Nullable  String type){
//        return this.api.getRequester().getPlans(pageNumber,pageSize,planName,status,personId,type);
//    }
//    public Flowable<RepositoryResult<PageContainer<InspectLogs>>> getInspectLogs(
//            @NonNull String pageNumber,
//            @NonNull String pageSize,
//            @Nullable  String status,
//            @Nullable  String date,
//            @Nullable String pointName){
//        return this.api.getRequester().getInspectLogs(pageNumber,pageSize,status,date,pointName);
//    }
//   public Flowable<RepositoryResult<InspectLogsDetail>> getInspectLogsDetail(@NonNull String id){
//        return this.api.getRequester().getInspectLogsDetail(id);
//    }
//   public Flowable<RepositoryResult<PageContainer<PlanRecord>>> getPlansRecord(
//            @NonNull  String pageNumber,
//            @NonNull String pageSize,
//            @Nullable  String date,
//            @Nullable String planName,
//            @Nullable String status,
//            @Nullable String type,
//            @Nullable String personId){
//        return this.api.getRequester().getPlansRecord(pageNumber,pageSize,date,planName,status,type,personId);
//    }
//    public Flowable<RepositoryResult<PlanRecord>>  getPlanRecordDetail(
//            @NonNull String id){
//        return this.api.getRequester().getPlanRecordDetail(id);
//    };
//
//    public  Flowable<RepositoryResult<FaultInfo>> getFaultDetail(@NonNull String id){
//        return this.api.getRequester().getFaultsDetail(id);
//    }
//
//
//    public Flowable<RepositoryResult<Boolean>> personCheck(
//            @NonNull   String content,
//            @NonNull   String time,
//            @Nullable  String type,
//            @Nullable  String userid
//    ) {
//        PersonCheckRequestParam param = new PersonCheckRequestParam();
//        param.setContent(content);
//        param.setTime(time);
//        param.setType(type);
//        param.setUserid(userid);
//        return this.api.getRequester().personCheck(param)
//                .map(originalResult -> {
//                    boolean isSuccess = "200".equals(originalResult.getStatusCode());
//                    RepositoryResult<Boolean> result = new RepositoryResult<>(
//                            isSuccess ,originalResult.getStatusCode(), originalResult.getMessage());
//                    result.setData(isSuccess);
//                    return result;
//                });
//    }
//    /**
//     * 今日巡检任务
//     * @param pageNumber
//     * @param pageSize
//     * @param date
//     * @param status
//     * @param name
//     * @return
//     */
//    public Flowable<RepositoryResult<PageContainer<PlanRecord>>> getPlanRcord(
//            @NonNull String pageNumber,
//            @NonNull String pageSize,
//            @Nullable String date,
//            @Nullable String status,
//            @Nullable String name
//    ){
//        return this.api.getRequester().getPlanRecord(pageNumber,pageSize,date,status,name);
//    }
//    public Flowable<RepositoryResult<ImplementationNotes>> getImplementationNotes(){
//        return this.api.getRequester().getImplementationNotes();
//    }
//    public Flowable<RepositoryResult<CheckPerson>> getCheckPersonDetail(
//            @NonNull String id,
//            @NonNull  String date
//    ){
//        return this.api.getRequester().getCheckPersonDetail(id,date);
//    }
//    public  Flowable<RepositoryResult<PageContainer<FaultInfo>>> getFaults(
//            @NonNull String pageNumber,
//            @NonNull String pageSize,
//            @Nullable String status,
//            @Nullable String name,
//            @Nullable  String date
//
//    ){
//        return this.api.getRequester().getFaults(pageNumber,pageSize,status,name,date);
//    }
//    public Flowable<RepositoryResult<PageContainer<InspectLine>>> getLines(
//            @NonNull String pageNumber,
//            @NonNull String pageSize,
//            @Nullable String lineName){
//
//        return this.api.getRequester().getLines(pageNumber,pageSize,lineName);
//    }
//    public Flowable<RepositoryResult<PlanRecordStatistics>> getPlanRecordStatistics(){
//        return this.api.getRequester().getPlanRcordStatistics();
//    }
//    public Flowable<RepositoryResult<Plans>> getPlansDetail(
//            @NonNull String id){
//        return this.api.getRequester().getPlansDetail(id);
//    };
//    public Flowable<RepositoryResult<List<Person>>> getPersonList(){
//        return this.api.getRequester().getPersonList();
//    };
//    public Flowable<RepositoryResult<PageContainer<CheckPerson>>> checkPersonList(
//            @NonNull  String pageNumber,
//            @NonNull  String pageSize,
//            @Nullable  String date,
//            @Nullable  String name,
//            @Nullable  String status
//    ){
//        return this.api.getRequester().checkPersonList(pageNumber,pageSize,date,name,status);
//    }
//    /**
//     * 今日巡检点情况
//     *
//     */
//    public Flowable<RepositoryResult<PageContainer<InspectPoint>>> getPointInfo(
//            @NonNull String pageNumber,
//            @NonNull String pageSize,
//            @Nullable String type,
//            @Nullable String id,
//            @Nullable String status,
//            @Nullable String pointName
//    ){
//        return this.api.getRequester().getPointInfo(pageNumber,pageSize,type,id,status,pointName);
//    }
//    public Flowable<RepositoryResult<List<PointItem>>> getPointItems(
//            @NonNull String id){
//        return this.api.getRequester().getPointItems(id);
//    }
//    /**
//     * 通过nfc获取巡检点信息
//     * @param nfcId
//     * @return
//     */
//    public Flowable<RepositoryResult<InspectPoint>> getPointDataByNfcId(int type,String nfcId){
//        return this.api.getRequester().getPointDataByNfcId(type,nfcId);
//    }
//
//    /**
//     *  故障上传
//     * @param FaultReportData
//     * @return
//     */
//    public Flowable<RepositoryResult<Boolean>> putFaultReport(@Body FaultReportData FaultReportData){
//
//              return  this.api.getRequester().putFaultReport(FaultReportData)
//                      .map(originalResult -> {
//                          boolean isSuccess = "200".equals(originalResult.getStatusCode());
//                          RepositoryResult<Boolean> result = new RepositoryResult<>(
//                                  isSuccess ,originalResult.getStatusCode(), originalResult.getMessage());
//                          result.setData(isSuccess);
//
//                          return result;
//                      });
//    }
//
//    /**
//     * 修改异常
//     * @param FaultReportData
//     * @return
//     */
//    public Flowable<RepositoryResult<Boolean>> putEditFaultReport(@Body FaultReportData FaultReportData){
//
//        return  this.api.getRequester().putEditFaultReport(FaultReportData)
//                .map(originalResult -> {
//                    boolean isSuccess = "200".equals(originalResult.getStatusCode());
//                    RepositoryResult<Boolean> result = new RepositoryResult<>(
//                            isSuccess ,originalResult.getStatusCode(), originalResult.getMessage());
//                    result.setData(isSuccess);
//
//                    return result;
//                });
//    }
//
//    /**
//     *  动态获取巡检内容
//     * @param pointId
//     * @return
//     */
//    public Flowable<RepositoryResult<List<InspectionContentData>>> getInspectionContent(String pointId) {
//        return this.api.getRequester().getInspectionContent(pointId);
//    }
//
//    public Flowable<RepositoryResult<CommonData>> putInspectionLogsRecordData(@Body InspectionLogsRecordData inspectionLogsRecordData) {
//        return this.api.getRequester().putInspectionLogsRecordData(inspectionLogsRecordData);
//    }
//
//
//    /**
//     * 在地图上获取巡检点
//     * @param type 地图比例 1：500（13）1:250（14）1：60（16） 1：15（18）
//     * @param name
//     * @return
//     */
//    public Flowable<RepositoryResult<List<InspectPoint>>> getPointDataInMap(Integer type, String name){
//        return this.api.getRequester().getPointDataInMap(type,name);
//
//    }
//
//    /**
//     *  在地图上获取巡检点集合，比例尺，地图中心
//     * @param name
//     * @return
//     */
//    public Flowable<RepositoryResult<PointInMapData>> getPointInMapData(String name,String status) {
//        return this.api.getRequester().getPointInMapData(name,status);
//    }
//
//    /**
//     * 巡检日历
//     * @param time
//     * @param userId
//     * @return
//     */
//    public Flowable<RepositoryResult<List<InspectCalenderData>>> getInspectionCalender(String time, String userId) {
//        return this.api.getRequester().getInspectionCalender(time,userId);
//    }
//
//
//    /**
//     * 当天任务
//     * @param time
//     * @param userId
//     * @return
//     */
//    public Flowable<RepositoryResult<OneDayTask>> getCalenderOneDayTask(String time, String userId) {
//        return this.api.getRequester().getCalenderOneDayTask(time,userId);
//    }
//
//    /**
//     * 风险级别统计
//     * @return
//     */
//    public Flowable<RepositoryResult<RiskLevelData>> getPointLevel() {
//        return this.api.getRequester().getPointLevel("");
//    }
//    /**
//     * 巡检记录统计(旧)
//     * @return
//     */
//    public Flowable<RepositoryResult<RecordsStatisticsData>> getRecoedsStatistics() {
//        return this.api.getRequester().getRecoedsStatistics("");
//    }
//
//    public Flowable<RepositoryResult<List<NewRecordData>>> getNewRecoedsStatistics() {
//        return this.api.getRequester().getNewRecoedsStatistics("");
//    }

}
